home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / IO / DataOutputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  2.4 KB  |  171 lines

  1. package java.io;
  2.  
  3. public class DataOutputStream extends FilterOutputStream implements DataOutput {
  4.    private boolean isLocalised = false;
  5.    protected int written;
  6.  
  7.    private static native byte[] JavaStringToLocalChars(String var0);
  8.  
  9.    private static native short JavaCharToLocalChar(char var0);
  10.  
  11.    public DataOutputStream(OutputStream var1) {
  12.       super(var1);
  13.    }
  14.  
  15.    public synchronized void write(int var1) throws IOException {
  16.       super.out.write(var1);
  17.       ++this.written;
  18.    }
  19.  
  20.    public synchronized void write(byte[] var1, int var2, int var3) throws IOException {
  21.       super.out.write(var1, var2, var3);
  22.       this.written += var3;
  23.    }
  24.  
  25.    public void flush() throws IOException {
  26.       super.out.flush();
  27.    }
  28.  
  29.    public final void writeBoolean(boolean var1) throws IOException {
  30.       super.out.write(var1 ? 1 : 0);
  31.       ++this.written;
  32.    }
  33.  
  34.    public final void writeByte(int var1) throws IOException {
  35.       super.out.write(var1);
  36.       ++this.written;
  37.    }
  38.  
  39.    public final void writeShort(int var1) throws IOException {
  40.       OutputStream var2 = super.out;
  41.       var2.write(var1 >>> 8 & 255);
  42.       var2.write(var1 & 255);
  43.       this.written += 2;
  44.    }
  45.  
  46.    public final void writeChar(int var1) throws IOException {
  47.       OutputStream var2 = super.out;
  48.       if (!this.isLocalised) {
  49.          var2.write(var1 >>> 8 & 255);
  50.          var2.write(var1 & 255);
  51.          this.written += 2;
  52.       } else {
  53.          short var3 = JavaCharToLocalChar((char)var1);
  54.  
  55.          do {
  56.             var2.write((byte)var3);
  57.             ++this.written;
  58.          } while((var3 = (short)(var3 >>> 8)) != 0);
  59.  
  60.       }
  61.    }
  62.  
  63.    public final void writeInt(int var1) throws IOException {
  64.       OutputStream var2 = super.out;
  65.       var2.write(var1 >>> 24 & 255);
  66.       var2.write(var1 >>> 16 & 255);
  67.       var2.write(var1 >>> 8 & 255);
  68.       var2.write(var1 & 255);
  69.       this.written += 4;
  70.    }
  71.  
  72.    public final void writeLong(long var1) throws IOException {
  73.       OutputStream var3 = super.out;
  74.       var3.write((int)(var1 >>> 56) & 255);
  75.       var3.write((int)(var1 >>> 48) & 255);
  76.       var3.write((int)(var1 >>> 40) & 255);
  77.       var3.write((int)(var1 >>> 32) & 255);
  78.       var3.write((int)(var1 >>> 24) & 255);
  79.       var3.write((int)(var1 >>> 16) & 255);
  80.       var3.write((int)(var1 >>> 8) & 255);
  81.       var3.write((int)var1 & 255);
  82.       this.written += 8;
  83.    }
  84.  
  85.    public final void writeFloat(float var1) throws IOException {
  86.       this.writeInt(Float.floatToIntBits(var1));
  87.    }
  88.  
  89.    public final void writeDouble(double var1) throws IOException {
  90.       this.writeLong(Double.doubleToLongBits(var1));
  91.    }
  92.  
  93.    public final void writeBytes(String var1) throws IOException {
  94.       OutputStream var2 = super.out;
  95.       if (this.isLocalised) {
  96.          byte[] var5 = JavaStringToLocalChars(var1);
  97.          var2.write(var5, 0, var5.length);
  98.          this.written += var5.length;
  99.       } else {
  100.          int var3 = var1.count;
  101.  
  102.          for(int var4 = 0; var4 < var3; ++var4) {
  103.             var2.write((byte)var1.charAt(var4));
  104.          }
  105.  
  106.          this.written += var3;
  107.       }
  108.    }
  109.  
  110.    public final void writeChars(String var1) throws IOException {
  111.       OutputStream var2 = super.out;
  112.       if (this.isLocalised) {
  113.          byte[] var6 = JavaStringToLocalChars(var1);
  114.          var2.write(var6, 0, var6.length);
  115.          this.written += var6.length;
  116.       } else {
  117.          int var3 = var1.count;
  118.  
  119.          for(int var4 = 0; var4 < var3; ++var4) {
  120.             char var5 = var1.charAt(var4);
  121.             var2.write(var5 >>> 8 & 255);
  122.             var2.write(var5 & 255);
  123.          }
  124.  
  125.          this.written += var3 * 2;
  126.       }
  127.    }
  128.  
  129.    public final void writeUTF(String var1) throws IOException {
  130.       OutputStream var2 = super.out;
  131.       int var3 = var1.count;
  132.       int var4 = 0;
  133.  
  134.       for(int var5 = 0; var5 < var3; ++var5) {
  135.          char var6 = var1.charAt(var5);
  136.          if (var6 >= 1 && var6 <= 127) {
  137.             ++var4;
  138.          } else if (var6 > 2047) {
  139.             var4 += 3;
  140.          } else {
  141.             var4 += 2;
  142.          }
  143.       }
  144.  
  145.       var2.write(var4 >>> 8 & 255);
  146.       var2.write(var4 & 255);
  147.  
  148.       for(int var8 = 0; var8 < var3; ++var8) {
  149.          char var7 = var1.charAt(var8);
  150.          if (var7 >= 1 && var7 <= 127) {
  151.             var2.write(var7);
  152.          } else if (var7 > 2047) {
  153.             var2.write(224 | var7 >> 12 & 15);
  154.             var2.write(128 | var7 >> 6 & 63);
  155.             var2.write(128 | var7 & 63);
  156.             this.written += 2;
  157.          } else {
  158.             var2.write(192 | var7 >> 6 & 31);
  159.             var2.write(128 | var7 & 63);
  160.             ++this.written;
  161.          }
  162.       }
  163.  
  164.       this.written += var3 + 2;
  165.    }
  166.  
  167.    public final int size() {
  168.       return this.written;
  169.    }
  170. }
  171.